package Objetos;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import bd.AccesoDatos;


public class Producto 
{
	private int idProducto;
	private String descripcion;
	private boolean estado;
	public boolean isEstado() {
		return estado;
	}
	public void setEstado(boolean estado) {
		this.estado = estado;
	}
	public int getIdProducto() {
		return idProducto;
	}
	public void setIdProducto(int idProducto) {
		this.idProducto = idProducto;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	public Producto(){}
	
	public Producto(int idProducto, String descripcion, boolean estado) {
		super();
		this.setIdProducto(idProducto);
		this.descripcion = descripcion;
		this.estado = estado;
	}
	
	public Producto(int idProducto)
	{
		AccesoDatos db = new AccesoDatos();
		ArrayList<String[]> datos = db.consultarDatos
					(
						"SELECT * FROM Productos WHERE idProducto = " + idProducto
					);
		for(String[] rs : datos)
		{
				this.setIdProducto(idProducto);
				this.setDescripcion(rs[1]);
				if(Integer.parseInt(rs[2]) == 1) this.setEstado(true);
				else this.setEstado(false);
			
		}
	}
	
	public static ArrayList<Producto> leerTodos()
	{
		ArrayList<Producto> productos = new ArrayList<Producto>();
		AccesoDatos db = new AccesoDatos();
		ArrayList<String[]> datos = db.consultarDatos("SELECT * FROM Productos");
		for(String [] rs : datos)
		{
			Producto x = new Producto();
			x.setIdProducto(Integer.parseInt(rs[0]));
			x.setDescripcion(rs[1]);
			if(Integer.parseInt(rs[2]) == 1) x.setEstado(true);
			else x.setEstado(false);
			productos.add(x);
		}
		return productos;
	}
	
	public void insertar()
	{
		AccesoDatos db = new AccesoDatos();
		db.ejecutarConsulta("INSERT INTO Productos VALUES(" 
							+ this.getIdProducto() + ", '" + 
							this.getDescripcion() + "', 1)");
	}
	
	public void actualizar()
	{
		String estado = "";
		if(this.estado == true) estado = "1";
		else estado = "0";
		AccesoDatos db = new AccesoDatos();
		String consulta = "UPDATE Productos " + 
							"SET descripcion = '" + this.getDescripcion() + 
							"', estado = " + estado + 
							" WHERE idProducto = " + 
							this.getIdProducto();
		db.ejecutarConsulta(consulta);
	}
	
	public void eliminar() {
		// TODO Auto-generated method stub
		String consulta = "DELETE FROM Productos WHERE idProducto = " + this.getIdProducto();
		AccesoDatos db = new AccesoDatos();
		db.ejecutarConsulta(consulta);
	}
	
	public static int ultimoId()
	{
		int id = 0;
		String consulta = "SELECT MAX(idProducto) FROM Productos";
		AccesoDatos db = new AccesoDatos();
		for(String[] x : db.consultarDatos(consulta))
		{
			id = Integer.parseInt(x[0]);
		}
		id++;
		return id;
		
	}
	
}
